iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0
Software Development

從 Laravel 到 Spring Boot:30 天打造縮網址服務系列 第 1

Day1 - 從 Laravel 到 Spring Boot:30 天打造縮網址服務

  • 分享至 

  • xImage
  •  

總覺得還是先來説説為什麼寫。其實想參加鐵人賽的心情一直都有,大概每年的這時間都會冒出好幾次類似的念頭。但畢竟就是很多藉口啊,說工作忙、沒主題,但說不定是害怕自己寫爛了、半途而廢了之類的。

最近剛好有了些時間,覺得是個契機,就決定還是來參賽至少這麼一次!而且畢竟現在科技進步這麼快,真的已經快要沒有藉口在說自己做不到了:)

為什麼是縮網址?

再來就是題目。就是聽起來很簡單的:縮網址。

這也算是我講好幾年的東西,哈哈哈哈!會有這個念頭出現其實是幾年前,那時候在想什麼是被動收入,然後我就想到:誒很多人發文都是隨便找一些縮網址的工具,但那些工具根本就超好做!但很多人用的話,我就可以透過塞一堆廣告賺錢,實現被動收入了哇哈哈哈:)!

但拖延症本色發揮,到現在為止完全沒做出任何讓我賺錢的東西:D

選擇 Java

最後最後,再疊加一個我想很久但也一直半吊子的東西,就是學一個跟 PHP/Laravel 有點不一樣的程式語言、框架。

為此我曾經還參加過幾次 Kotlin 小聚、甚至還有朋友送了我一本 Java 工具書(下有圖,就是依然九成新),但學習進度一直停在大概就勉強能做出一個 hello world api。

總之,這些因素加在一起,就決定了這個主題有多麽樸實無華。如果一句話略,就是:

我來完成我兒時的夢想!

結合 AI 加速學習

可能會有人想,現在都有 AI 了,還要學這些、做這些幹嘛呢?但老實說,如果沒有 AI 的幫忙,其實我說不定還會繼續拖下去耶哈哈哈哈!

用想的都覺得好像很簡單,但其實光是想要學什麼、重點放哪裡、怎麼分配這 30 天,都不是什麼信手捻來的事情(對我來說啦)。AI 能給你好多好多內容,但只有自己能篩選出適合自己的東西,我相信還是會很好玩!:P

這 30 天能學到什麼

  1. 複習 Laravel 的各種用法
  2. Java / Spring Boot 深入淺出
  3. 一些簡單的架站方法
  4. AI 小撇步
  5. 持續寫作的好習慣

需要準備的東西

  1. IDE - 我選擇使用 VSCode,比較適合我的使用習慣。但滿多 Java 開發者用 IntellJ!
  2. AI 工具 - 我選用 Claude。學習還是要靠自己,但如果透過 AI,可以很好的加速吸收。
  3. (可選)(感謝朋友幾年前的贊助)Spring Boot 工具書 - 雖然說現在版本已經更新,但很多概念其實都是能通用的,書本也能把散落一地知識集結成冊,覺得當工具書來翻翻也會有幫助~

30 天大綱

先講開場跟 Java 基礎:

  • Day1 - 開賽宣言與專案總覽(就是這篇)
  • Day2 - Java 生態系與語言基礎踩雷筆記
  • Day3 - 建置工具 Maven/Gradle vs Composer
  • Day4 - Spring Boot 專案結構與 IoC/DI 容器 vs Laravel Service Container
  • Day5 - Spring MVC Controller/Routing vs Laravel Route/Controller

接著是主力的開發篇,會邊寫文章邊把縮網址服務生出來:

  • Day6 - 請求驗證 Validation vs Laravel Form Request
  • Day7 - Spring Data JPA vs Eloquent ORM 基礎
  • Day8 - 資料庫遷移 Flyway/Liquibase vs Laravel Migration
  • Day9 - 分層架構與 DTO/Mapper(縮網址核心 API 雛形)
  • Day10 - 例外處理與統一錯誤回應 vs Laravel Exception Handler
  • Day11 - 設定管理 application.yml/Profile vs Laravel .env/config
  • Day12 - Middleware/Interceptor/Filter vs Laravel Middleware
  • Day13 - Spring Security 入門 vs Laravel Sanctum(API 認證)
  • Day14 - 短網址雜湊策略與唯一性設計(base62 / 分散式 ID)
  • Day15 - Redis 快取整合 vs Laravel Cache(熱門短網址快取)
  • Day16 - Rate Limiting 實作(防暴力產生短網址)
  • Day17 - 排程任務 Spring Scheduler vs Laravel Scheduler(過期連結清理)
  • Day18 - 非同步處理 @Async / 訊息佇列概念 vs Laravel Queue
  • Day19 - 單元測試 JUnit + Mockito vs PHPUnit
  • Day20 - 整合測試與 Testcontainers
  • Day21 - API 文件 springdoc-openapi vs L5-Swagger
  • Day22 - 日誌與可觀測性 Logback/Actuator vs Laravel Log/Telescope
  • Day23 - 效能調校與連線池 HikariCP

再來是這系列的另一個重點,AI 協作三部曲:

  • Day24 - 與 Claude Code 協作開發心法(AI輔助轉職學習法)
  • Day25 - GitHub Actions 導入 Claude Code Review 自動化
  • Day26 - 把服務包裝成 MCP Server 實作筆記

最後是讓它真的上線,還有收尾:

  • Day27 - Docker 化 Spring Boot(多階段建置、ARM 映像檔考量)
  • Day28 - Docker Compose 部署到 Raspberry Pi
  • Day29 - Cloudflare Tunnel + DNS 把 Pi 安全曝露上網,搭配邊緣快取
  • Day30 - 找 Java 前輩 Code Review、30 天總回顧

大概就是這樣,接下來 29 天,我們繼續!


下一篇
Day2 - Java 生態系與語言基礎、特性筆記
系列文
從 Laravel 到 Spring Boot:30 天打造縮網址服務9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言